using System;
using System.Collections.Generic;
using System.Text;

using MyAI.NeuralNetworkLib.Specification;

namespace MyAI.NeuralNetworkLib.Implementation
{
    public class LearningStrategyFactory : ILearningStrategyFactory
    {
        #region Vars
        private static LearningStrategyFactory _instance = null;
        #endregion

        #region Constructor
        private LearningStrategyFactory()
        { 
        
        }
        #endregion

        #region Instance
        public static LearningStrategyFactory Instance
        {
            get
            {
                if (_instance == null)
                {
                    _instance = new LearningStrategyFactory();
                }
                return _instance;
            }
        }
        #endregion

        #region ILearningStrategyFactory Members

        public ILearningStrategy CreateLearningStrategy(LearningMethods lMethod)
        {
            switch (lMethod)
            { 
                case LearningMethods.BackProp_LogicSigmoid:
                    return new BackPropLogicSigmoidStrategy();
                default:
                    return new BackPropLogicSigmoidStrategy();
            }
        }

        #endregion
    }
}
